Backup
There are two forms of backups for the RHQ Storage Node - snapshots and data replication. This document discusses snapshots. See Data Replication and Consistency for information about data replication.
Snapshot management can be configured in Administration → Storage Nodes → Cluster Settings. By default Snapshot Management is disabled. Snapshot Management section allows to schedule re-occurring maintenance job taking snapshots of all key spaces for each node in Storage cluster. Several Retention and Deletion strategies can be set in order to manage older snapshots.
Snapshot management is available since RHQ 4.13
The diagram below shows the structure of the data directory.
rhq-data/data/
├── rhq
│ ├── metrics_index
│ │ ├── rhq-metrics_index-ic-1-Data.db
│ │ ├── rhq-metrics_index-ic-1-Digest.sha1
│ │ ├── rhq-metrics_index-ic-1-Filter.db
│ │ ├── rhq-metrics_index-ic-1-Index.db
│ │ ├── rhq-metrics_index-ic-1-Statistics.db
│ │ ├── rhq-metrics_index-ic-1-Summary.db
│ │ ├── rhq-metrics_index-ic-1-TOC.txt
│ │ └── snapshots
│ │ └── 1381434767144
│ │ ├── rhq-metrics_index-ic-1-Data.db
│ │ ├── rhq-metrics_index-ic-1-Digest.sha1
│ │ ├── rhq-metrics_index-ic-1-Filter.db
│ │ ├── rhq-metrics_index-ic-1-Index.db
│ │ ├── rhq-metrics_index-ic-1-Statistics.db
│ │ ├── rhq-metrics_index-ic-1-Summary.db
│ │ └── rhq-metrics_index-ic-1-TOC.txt
│ ├── one_hour_metrics
│ │ ├── rhq-one_hour_metrics-ic-1-Data.db
│ │ ├── rhq-one_hour_metrics-ic-1-Digest.sha1
│ │ ├── rhq-one_hour_metrics-ic-1-Filter.db
│ │ ├── rhq-one_hour_metrics-ic-1-Index.db
│ │ ├── rhq-one_hour_metrics-ic-1-Statistics.db
│ │ ├── rhq-one_hour_metrics-ic-1-Summary.db
│ │ ├── rhq-one_hour_metrics-ic-1-TOC.txt
│ │ └── snapshots
│ │ └── 1381434767144
│ │ ├── rhq-one_hour_metrics-ic-1-Data.db
│ │ ├── rhq-one_hour_metrics-ic-1-Digest.sha1
│ │ ├── rhq-one_hour_metrics-ic-1-Filter.db
│ │ ├── rhq-one_hour_metrics-ic-1-Index.db
│ │ ├── rhq-one_hour_metrics-ic-1-Statistics.db
│ │ ├── rhq-one_hour_metrics-ic-1-Summary.db
│ │ └── rhq-one_hour_metrics-ic-1-TOC.txt
│ ├── raw_metrics
│ │ ├── rhq-raw_metrics-ic-1-Data.db
│ │ ├── rhq-raw_metrics-ic-1-Digest.sha1
│ │ ├── rhq-raw_metrics-ic-1-Filter.db
│ │ ├── rhq-raw_metrics-ic-1-Index.db
│ │ ├── rhq-raw_metrics-ic-1-Statistics.db
│ │ ├── rhq-raw_metrics-ic-1-Summary.db
│ │ ├── rhq-raw_metrics-ic-1-TOC.txt
│ │ └── snapshots
│ │ └── 1381434767144
│ │ ├── rhq-raw_metrics-ic-1-Data.db
│ │ ├── rhq-raw_metrics-ic-1-Digest.sha1
│ │ ├── rhq-raw_metrics-ic-1-Filter.db
│ │ ├── rhq-raw_metrics-ic-1-Index.db
│ │ ├── rhq-raw_metrics-ic-1-Statistics.db
│ │ ├── rhq-raw_metrics-ic-1-Summary.db
│ │ └── rhq-raw_metrics-ic-1-TOC.txt
│ ├── schema_version
│ │ ├── rhq-schema_version-ic-1-Data.db
│ │ ├── rhq-schema_version-ic-1-Digest.sha1
│ │ ├── rhq-schema_version-ic-1-Filter.db
│ │ ├── rhq-schema_version-ic-1-Index.db
│ │ ├── rhq-schema_version-ic-1-Statistics.db
│ │ ├── rhq-schema_version-ic-1-Summary.db
│ │ ├── rhq-schema_version-ic-1-TOC.txt
│ │ └── snapshots
│ │ └── 1381434767144
│ │ ├── rhq-schema_version-ic-1-Data.db
│ │ ├── rhq-schema_version-ic-1-Digest.sha1
│ │ ├── rhq-schema_version-ic-1-Filter.db
│ │ ├── rhq-schema_version-ic-1-Index.db
│ │ ├── rhq-schema_version-ic-1-Statistics.db
│ │ ├── rhq-schema_version-ic-1-Summary.db
│ │ └── rhq-schema_version-ic-1-TOC.txt
│ ├── six_hour_metrics
│ │ ├── rhq-six_hour_metrics-ic-1-Data.db
│ │ ├── rhq-six_hour_metrics-ic-1-Digest.sha1
│ │ ├── rhq-six_hour_metrics-ic-1-Filter.db
│ │ ├── rhq-six_hour_metrics-ic-1-Index.db
│ │ ├── rhq-six_hour_metrics-ic-1-Statistics.db
│ │ ├── rhq-six_hour_metrics-ic-1-Summary.db
│ │ ├── rhq-six_hour_metrics-ic-1-TOC.txt
│ │ └── snapshots
│ │ └── 1381434767144
│ │ ├── rhq-six_hour_metrics-ic-1-Data.db
│ │ ├── rhq-six_hour_metrics-ic-1-Digest.sha1
│ │ ├── rhq-six_hour_metrics-ic-1-Filter.db
│ │ ├── rhq-six_hour_metrics-ic-1-Index.db
│ │ ├── rhq-six_hour_metrics-ic-1-Statistics.db
│ │ ├── rhq-six_hour_metrics-ic-1-Summary.db
│ │ └── rhq-six_hour_metrics-ic-1-TOC.txt
│ └── twenty_four_hour_metrics
│ ├── rhq-twenty_four_hour_metrics-ic-1-Data.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-Digest.sha1
│ ├── rhq-twenty_four_hour_metrics-ic-1-Filter.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-Index.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-Statistics.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-Summary.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-TOC.txt
│ └── snapshots
│ └── 1381434767144
│ ├── rhq-twenty_four_hour_metrics-ic-1-Data.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-Digest.sha1
│ ├── rhq-twenty_four_hour_metrics-ic-1-Filter.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-Index.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-Statistics.db
│ ├── rhq-twenty_four_hour_metrics-ic-1-Summary.db
│ └── rhq-twenty_four_hour_metrics-ic-1-TOC.txt
There is a separate directory for each table. Within each table directory, there is a snapshots directory. The name of each snapshot directory is a timestamp. A snapshot consumes little disk space because hard links are used for the data files. Once there is more snapshots, hard links become regular files and free space may become an issue.
Example - Take snapshots every week by moving older snapshots to different place
We set Schedule to 0 0 0 ? * SUN (every sunday noon), Retention Strategy to Keep Last N with Count parameter equal 0 together with Deletion Strategy set to Move and Location parameter set to i.e. /backup. As a result snapshots directory within your storage nodes will remain empty and all snapshots will appear in /backup
Example - Take snapshots every day and keep snapshots not older than 2 weeks
We set Schedule to 0 0 0 ? * (every day), Retention Strategy to Delete Older Than N Days with Count parameter equal 14 together with Deletion Strategy set to Delete. As a result snapshots directory within your storage nodes will never contain more than 14 snapshots.
Restore